/**
 * 封装wx.request
 * @param {Object} options - 请求配置
 * @param {string} options.url - 请求地址
 * @param {string} [options.method='GET'] - 请求方法
 * @param {Object} [options.data={}] - 请求数据
 * @param {Object} [options.header={}] - 请求头
 * @returns {Promise} - 返回Promise对象
 */
// https://course.myhope365.com/api/weChat/applet/subject/list
export function request(options) {
  if (!options.url.startsWith("https://") && !options.url.startsWith("http://")) {
    options.url = "https://course.myhope365.com/api" + options.url
  }
  // 默认配置
  const baseOptions = {
    url: options.url,
    method: options.method || 'GET',
    data: options.data || {},
    header: {
      'content-type': 'application/json', // 默认Content-Type
      ...options.header // 合并自定义请求头
    }
  }

  // 返回Promise
  return new Promise((resolve, reject) => {
    wx.request({
      ...baseOptions,
      success(res) {
        // 可以在这里统一处理成功响应
        if (res.statusCode === 200) {
          resolve(res.data)
        } else {
          reject(new Error(`请求失败：${res.statusCode}`))
        }
      },
      fail(err) {
        // 统一处理失败情况
        console.error('请求失败：', err)
        reject(err)
      },
      complete() {
        // 可以在这里处理请求完成的统一逻辑，如关闭加载提示
      }
    })
  })
}